package com.ikas.ai.server.module.system.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ikas.ai.server.module.system.model.User;
import com.ikas.ai.server.module.system.model.vo.UserVo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 获取用户相关信息
 */
@Repository
public interface UserDAO extends BaseMapper<User> {
    /**
     * 获取用户信息
     *
     * @param id
     * @return
     */
    public User getUserById(Long id);

    /**
     * 获取用户信息
     *
     * @param userName
     * @return
     */
    public UserVo getUser(String userName);

    /**
     * 修改用户头像
     *
     * @param user
     */
    void updateUserAvatar(User user);

    /**
     * 通过用户名称查找用户信息
     *
     * @param account
     * @return
     */
    User getUserByName(String account);

    /**
     * 用户分页查询
     *
     * @param user
     * @return
     */
    List<UserVo> listPage(User user);


    List<String> selectByIds(@Param("ids") List<String> ids);

    /**
     * 根据角色id查询 关联的所有用户信息
     * @param roleId
     * @return
     */
    List<User> selectByRoleId(Long roleId);

    @Select("SELECT * FROM t_cfg_user WHERE BINARY user_name = #{userName} limit 1")
    User selectByUsername(String userName);
}
